package com.networkmanagerj.view.regra
{
	import com.networkmanagerj.model.GrupoUsuario;
	import com.networkmanagerj.model.Mensagem;
	import com.networkmanagerj.model.Usuario;
	import com.networkmanagerj.model.ValorParametroAceitavel;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.core.UIComponent;
	import mx.events.FlexEvent;
	import mx.rpc.events.ResultEvent;

	public class RegraGridScript extends RegraGridView
	{
		private var loadRegras:Boolean = true;
		private var loadMensagens:Boolean = true;
		public function RegraGridScript()
		{
			super();
			MESSAGE_SAVE_SUCESS = "Regra salva com sucesso!";
			MESSAGE_UPDATE_SUCESS = "Regra alterada com sucesso!";
		}
		
		override protected function onCreateComplete(event:FlexEvent):void{
			super.onCreateComplete(event);
		}
		
		override protected function loadDataProvider():void{
			dataProvider =null;
			remoteObject.getAll(ValorParametroAceitavel.remoteClass);
		}
		
		override protected function getAllSucess(event:ResultEvent):void{
			super.getAllSucess(event);
			if(loadMensagens){
				mensagens = null;
				remoteObject.getAll(Mensagem.remoteClass);
				loadMensagens = false;
			}else if( mensagens==null && !loadMensagens){
				mensagens = event.result as ArrayCollection;
			}
		}
		
		override protected function gridEdit(object : Object):void
		{
			super.gridEdit(object);
			regra = object as ValorParametroAceitavel;
			tw.title = "Editando Regra";
		}
		
		override protected function clearForm(child:UIComponent=null):void{
			regra = new ValorParametroAceitavel();
			cbMensagens.selectedIndex = 0;
			cbTipoRegra.selectedIndex = 0;
			tw.title = "Nova Regra";
		}
			
		
		override protected function save():void{
			if(!cbMensagens.selectedItem as Mensagem){
				Alert.show("Selecione uma mensagem!");
				return;
			}
			if(cbTipoRegra.selectedIndex < 0){
				Alert.show("Selecione tipo de regra!");
				return;
			}
				regra.mensagem = cbMensagens.selectedItem;
				regra.tipoValor = cbTipoRegra.selectedIndex;
				regra.nomeParametro = txtNomeParametro.text;
				regra.valor = txtValorParametro.text;
				
				if(regra.id==0){
					remoteObject.save(regra);
				}else{
					remoteObject.update(regra);
				}
		}
	}
}